package cn.tedu.weibo.result;

import lombok.*;

/**
 * 统一响应结果
 * 所有的Controller在给前端回复信息时，保证风格，结构统一
 * 便于对Controller响应的管理和重用，也便于前端
 */
//@Data
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class JsonResult {
    /*
    每个不同的业务对应的不同处理结果都应当有一个独立的状态码
     */
    private Integer statusCode;
    /*
    响应的提示信息
     */
    private String message;
    /*
    响应的数据
     */
    private Object data;

    public JsonResult(Status status) {
        this.statusCode = status.getStatusCode();
        this.message = status.getMessage();
    }
    public JsonResult(Status status,Object data){
        this(status);
        this.data=data;
    }
    public static JsonResult success(){
        //return new JsonResult(Status.OPERATION_SUCCESS,null);
        return success(null);
    }
    public static JsonResult success(Object data){
        return new JsonResult(Status.OPERATION_SUCCESS,data);
    }
}
